// 入口函数
$(function () {
    // 1.1 获取裁剪区域的 DOM 元素
    var $image = $('#image')
    // 1.2 配置选项
    const options = {
        // 纵横比
        aspectRatio: 1,
        // 指定预览区域
        preview: '.img-preview'
        }
        // 1.3 创建裁剪区域
    $('#image').cropper(options);

    // 头像上传分三步：
    // 1.选择图片; 2.渲染图片 3.上次头像;
    $("#chooseImageBtn").on('click',function () {
        $("#chooseImageInp").click();
    });

    // 2.渲染图片; change 选择文件的时候触发的事件; value值发生改变就会触动
    $("#chooseImageInp").on("change",function () {
        // console.log(this.value);
        // 1.获取文件对象
        let file = this.files[0];
        // 非空校验
        if(file === undefined){
            return layui.layer.msg("上传头像，不能为空!");
        }
        // 根据文件对象，生成路径
        let url = URL.createObjectURL(file);
        // console.log(url);
        // 给浏览器图片区域赋值
        $image.cropper("destroy") // 先销毁，在设置，最后渲染
        .attr('src',url)
        .cropper(options) // 链式编程
    });

    // 3.上传头像
    $("#uploadBtn").on("click",function () {
        // 把裁剪区域的图片，转换为base64格式的字符串！
        var dataURL = $image
        .cropper('getCroppedCanvas', { // 创建一个 Canvas 画布
            width:100,
            height:100
        })
        .toDataURL('image/png') // 将 Canvas 画布上的内容，转化
        console.log(dataURL);
        // 发送 ajax 更换用户头像！
        axios({
            method:'POST',
            url:'/my/update/avatar',
            // 我们要自己拼接这种: a=1&b=2&c=3
            // 注意：只编译 dataURL ， 不要编译前面的属性和等号
            data:"avatar=" + encodeURIComponent(dataURL)
        }).then(res=>{
            // console.log(res);
            if (res.data.status !== 0) {
                return layui.layer.msg(res.data.message);
            }
            // 成功：提示 + 刷新父页面头像渲染
            layui.layer.msg("恭喜你，更改用户头像成功！");
            window.parent.getUserInfo();
        });
    });
})

